home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
NetNews Offline 2
/
NetNews Offline Volume 2.iso
/
news
/
comp
/
std
/
c
/
252
< prev
next >
Wrap
Internet Message Format
|
1996-08-06
|
1KB
Path: sdrc.com!thor!scjones
From: scjones@thor.sdrc.com (Larry Jones)
Newsgroups: comp.std.c
Subject: Re: atexit() and return from main()
Date: 31 Jan 1996 15:58:01 GMT
Organization: SDRC Engineering Services
Distribution: world
Message-ID: <4eo3i9$kbs@info1.sdrc.com>
References: <4dhfja$j50@fg70.rz.uni-karlsruhe.de> <4diicg$i9e@lyra.csx.cam.ac.uk> <4emq9l$2fn@hammy.lonestar.org>
NNTP-Posting-Host: thor.sdrc.com
In article <4emq9l$2fn@hammy.lonestar.org>, gordon@hammy.lonestar.org (Gordon Burditt) writes:
> I claim that longjmp()ing out of an atexit function into main
> causes undefined behavior because main() has already returned
> (or, equivalently, called exit()) between the setjmp and
> longjmp calls.
>
> In fact, calling exit() may not unwind the stack like returning
> from main() does, so you might get away with it, but there's
> no guarantee.
Yes there is, sort of. A forthcoming compendium of Technical
Corrigenda clarifies that returning from main and calling exit are not
*completely* equivalent in that calling exit does *not* unwind the stack
(at least not until so late in the processing that the program can not
tell that it happened).
----
Larry Jones, SDRC, 2000 Eastman Dr., Milford, OH 45150-2789 513-576-2070
larry.jones@sdrc.com
You just can't ever be too careful. -- Calvin